<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<style>
		h3{
			color:#696969;
		}
		#div1{
			width: 200px;
			height: 200px;
			background-color: red;
			color: white;
			font-size: 50px;
			text-align: center;
			line-height: 200px;
			position: absolute;
			left: 200px;
			top: 100px;
		}
		#div2{
			width: 200px;
			height: 200px;
			background-color: green;
			color: white;
			font-size: 50px;
			text-align: center;
			line-height: 200px;
			position: absolute;
			left: 420px;
			top: 100px;
		}
		#div3{
			width: 200px;
			height: 200px;
			background-color: deepskyblue;
			color: white;
			font-size: 50px;
			text-align: center;
			line-height: 200px;
			position: absolute;
			left: 640px;
			top: 100px;
		}
		#div4{
			width: 200px;
			height: 200px;
			background-color: black;
			color: white;
			font-size: 50px;
			text-align: center;
			line-height: 200px;
			position: absolute;
			left: 860px;
			top: 100px;
		}
	</style>
	<body>
		
			<!--	用JS监听一排水平排列的按键, 用手指或鼠标拖动后改变位置, 让其插入到新的位置(不是对换, )
					- 分别解释数组方法pop() push() unshift() shift()?
					- 事件绑定和普通事件有什么区别?
					- ajax请求的时候get和post方式的区别?
					
					使用Get请求时,参数在URL中显示,而使用Post方式,则不会显示出来
					使用Get请求发送数据量小,Post请求发送数据量大
					
					- call和apply的区别?
					事件委托是什么, 使用事件委托有什么好处?-->
					<h1>编辑题:用JS监听一排水平排列的按键, 用手指或鼠标拖动后改变位置, 让其插入到新的位置(不是对换, )</h1>
					<h3>不会啊 旭哥,没思路啊</h3>
				<div id="div1">1</div>
				<div id="div2">2</div>
				<div id="div3">3</div>
				<div id="div4">4</div>
					
					
					
				<br />
				<br />
				<br />
				<br />
				<br />
				<br />
		<hr />
		<h1>Q:事件绑定和普通事件有什么区别?</h1>
		<h3>A:普通事件只支持单个事件，而事件绑定可以添加多个事件</h3>
		<br />
		<br />
		<hr />
		<h1>Q:分别解释数组方法pop() push() unshift() shift()?</h1>
		<h3>A: push和pop方法，这两个方法只会对数组从尾部进行压入或弹出，
			而且是在原数组进行操作，任何的改动都是会影响到操作的数组。push(args)可以每次
			压入多个元素，并返回更新后的数组长度。pop()函数每次只会弹出最后一个结尾的元素
			，并返回弹出的元素，如果是对空组数调用pop()则返回undefined。 如果参数是数组则是
			将整个数组当做一个元素压入到原来的数组当中。并不会产生类似concat合并数组时产生的“拆分现象”
			<br />
			unshift() 方法将把它的参数插入数组的头部，并将已经存在的元素顺次地移到较高的下标处，以便留出空间
			。该方法的第一个参数将成为数组的新元素 0，如果还有第二个参数，它将成为新的元素 1，以此类推。
				请注意，unshift() 方法不创建新的创建，而是直接修改原有的数组。该方法会改变数组的长度。
				<br />
				shift() 方法用于把数组的第一个元素从其中删除，并返回第一个元素的值。
				如果数组是空的，那么 shift() 方法将不进行任何操作，返回 undefined 值.不创建新数组，而是直接修改原有的数组。
				该方法也会改变数组的长度.
		</h3>
			
		
			<br />
			<br />
			<hr />
			<h1>Q:ajax请求的时候get和post方式的区别?</h1>
			<h3>A:使用Get请求时,参数在URL中显示,而使用Post方式,则不会显示出来
				<br />
					使用Get请求发送数据量小,Post请求发送数据量大</h3>
					<br />
					<br />
			<hr />
			<h1>Q:call和apply的区别?
				
			</h1>
			<h3>A: <br />
							call方法: 
							语法：call(thisObj，Object)
							定义：调用一个对象的一个方法，以另一个对象替换当前对象。
							说明：
							call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。 
							如果没有提供 thisObj 参数，那么 Global 对象被用作 thisObj。 
							<br />
							<br />
							apply方法： 
							语法：apply(thisObj，[argArray])
							定义：应用某一对象的一个方法，用另一个对象替换当前对象。 
							说明： 
							如果 argArray 不是一个有效的数组或者不是 arguments 对象，那么将导致一个 TypeError。 
							如果没有提供 argArray 和 thisObj 任何一个参数，那么 Global 对象将被用作 thisObj， 并且无法被传递任何参数。</h3>
							<br />
							<br />
			<hr />
				<h1>A: 事件委托是什么, 使用事件委托有什么好处?</h1>
				<h3><br />
						通俗的讲，事件就是onclick，onmouseover，onmouseout，等就是事件，委托呢，
						就是让别人来做，这个事件本来是加在某些元素上的，然而你却加到别人身上来
						做，完成这个事件。也就是：利用冒泡的原理，把事件加到父级上，触发执行效果。
						<br /> 
						好处就是提高性能.
				</h3>
				<br />
				<br />
				
				<hr />
				
				
				
				
				
	</body>
</html>
